/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2025-06-28     17247       the first version
 */
#ifndef APPLICATIONS_SHT31_THREAD_H_
#define APPLICATIONS_SHT31_THREAD_H_


#include <rtthread.h>

/* 全局传感器状态标志 */
extern volatile uint8_t sht31_init_complete;

/* 传感器数据 */
extern float global_temperature;
extern float global_humidity;

/* I2C互斥锁 */
extern rt_mutex_t i2c_mutex;

/**
 * @brief 获取当前温度值
 *
 * @return float 温度值（摄氏度），若无效返回NAN
 */
float get_global_temperature(void);

/**
 * @brief 获取当前湿度值
 *
 * @return float 湿度值（百分比），若无效返回NAN
 */
float get_global_humidity(void);

/**
 * @brief 检查传感器是否初始化完成
 *
 * @return uint8_t 1 = 初始化完成，0 = 未完成
 */
uint8_t sht31_is_initialized(void);

/**
 * @brief 初始化传感器显示线程
 *
 * @return int RT_EOK(0) = 成功，其他值 = 错误
 */
int sht31_display_init(void);

#ifdef __cplusplus
}
#endif

#endif /* APPLICATIONS_SHT31_THREAD_H_ */
